home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / oki192.arc / OKI192.ASM next >
Encoding:
Assembly Source File  |  1986-02-21  |  16.5 KB  |  648 lines

  1.  
  2.  
  3. NAME    OKI192
  4.     PAGE    50,130
  5.     TITLE    OKI192.COM    RITARI/MACK '85    
  6. ;
  7. ;******************************************************************************
  8. ;
  9. ;OKI192.COM        -Setup Utility for Okidata192 printer
  10. ;    from an idea by Douglas Ritari; PC Tech J., Sep 84, p 79
  11. ;
  12. ;    Modified by Joseph MACK
  13. ;    Dept Chem, UMBC
  14. ;    5401 Wilkens Ave
  15. ;    Catonsville,MD,21228
  16. ;    (301)-455-2564 (12-5pm best)
  17. ;    Feb '86
  18. ;
  19. ;******************************************************************************
  20. ;
  21. ;prog constants
  22.         cr    equ    13
  23.         lf    equ    10
  24. ;
  25. ;
  26. MAIN    SEGMENT    PARA    PUBLIC    'CODE'
  27.         ORG    100H
  28. START    PROC    FAR
  29. ;
  30.         ASSUME    CS:MAIN
  31.         ASSUME    DS:MAIN
  32.         ASSUME    SS:MAIN
  33.         ASSUME    ES:MAIN
  34. ;
  35.         JMP    SSTART    ;Jump to real start of prog
  36. ;
  37. ;************************INITIALISE DATA VARIABLES*****************************
  38. ;constants initialised at load time, not at execution time
  39. ;
  40. SW DB    0    ;Switch for HEX '/' seq.-either '0' or 'FFH'
  41. SIXTEEN    DB    16    ;the number '16' used in hex conversion -mul
  42. TESTPR    DB    0    ;Switch to test if any output was produced
  43. NUM_DIGITS    DB    0    ;Number of hex digits produced-'0' or '1'
  44. FD_OOR    DB    0    ;first digit out of range
  45. HEX        DB    0    ;hex accumulator
  46. PARM    DB    0    ;Move param to here -1 byte at a time
  47. ;
  48. ;******************************************************************************
  49. ; BEGIN PROG- SAVE RETURN ADDRESS FOR DOS
  50. ;******************************************************************************
  51. ;
  52. SSTART:
  53.         PUSH    DS    ;Save PSP Seg address
  54.         MOV    AX,0
  55.         PUSH    AX    ;Save return address offset (PSP+0)
  56. ;
  57. ;***************CHECK PRINTER***************************************************
  58. ;
  59.         PUSH    AX
  60.         PUSH    DX        ;save registers
  61.         MOV    AH,02    ;read port
  62.         MOV    DX,0        ;port 00=printer#1
  63.         INT    17H        ;read status
  64.         TEST    AH,8H    ;bit 3 on?-I/O error
  65.         JZ    BIT_3_OK
  66.         LEA    DX,prn_err_bit_3
  67.         CALL    PRMSG
  68.         POP    DX
  69.         POP    AX
  70.         RET            ;pop registers and exit to DOS
  71. BIT_3_OK:TEST    AH,20H    ;bit 5 on?-out of paper
  72.         JZ    BIT_5_OK
  73.         LEA    DX,prn_err_bit_5
  74.         CALL    PRMSG
  75.         POP    DX
  76.         POP    AX
  77.         RET            ;exit to DOS
  78. BIT_5_OK:POP     DX
  79.         POP    AX
  80. ;    
  81. ;got here if printer OK
  82. ;
  83. ;******************MOVE COUNT OF CHARACTERS INTO PARM AREA********************
  84. ;
  85.         MOV    SI,80H        ;Source string offset (within PSP)
  86.         MOV    DI,OFFSET PARM    ;dest string offset
  87.         CLD                ;Set 'forward' string operations
  88.         MOVSB            ;move # of params entered into 'PARM' variable
  89.         DEC    DI
  90. ;
  91. ;*******************SET UP PARM FIELD'S POINTERS*******************************
  92. ;
  93.         MOV    AL,PARM        ;Put number of char. in parm into AL register
  94.         MOV    CX,AX        ;      "                          CX
  95.         MOV    BX,OFFSET PARM    ;point to parms base address
  96.         CMP    CX,0            ;were no parms entered ?
  97.         JNE    SEARCH        ;param found
  98.         CALL    DEFAULT        ;end of search, no parms found-send defaults
  99.         RET                ;end program, return to DOS,(PSP and offset POPed)
  100. ;
  101. ;******************************************************************************
  102. ; PARMS WERE ENTERED- SEARCH FOR AND PROCESS PARAMETERS
  103. ;******************************************************************************
  104. ;
  105. SEARCH:    MOVSB            ;read in parm from prog.seg. prefix
  106.         DEC    DI            
  107.         MOV    AL,[BX]        ;move next parm to input reg
  108.         CMP    AL,' '        ;blank?
  109.         JE    SEARCH_END    ;ignore
  110.         CMP    AL,','        ;comma?
  111.         JE    SEARCH_END    ;ignore
  112. ;
  113.         CMP    AL,'a'        ;UC/lc?
  114.         JL    ALPH_HEX        ;do not modify this letter if lower than 'a'
  115.         AND    AL,223        ;reduce by 32, uncaps==>caps
  116. ;
  117. ALPH_HEX:CMP    SW,0            ;=1 hex sequence on,=0 off
  118.         JE    SLASH        ;expects alph input
  119.         CALL    HEXON        ;expects hex input
  120.         JMP    SEARCH_END
  121. ;
  122. ;got here if hex not on
  123. ;
  124. SLASH:    CMP    AL,'/'        ;hex sequence begun?
  125.         JE    SW_ON
  126.         CALL    ALPHA_ENTRY    ;expects alphabetic input
  127.         JMP    SEARCH_END    ;look for next char
  128. ;
  129. SW_ON:    MOV    SW,1            ;turn on hex sequence
  130. SEARCH_END:    LOOP SEARCH    ;get more input
  131. ;
  132. ;******************************************************************************
  133. ;Get here if no more parms available. Check for unpaired hex digits
  134. ;******************************************************************************
  135. ;
  136.         CMP    NUM_DIGITS,0    ;unpaired hexcodes? =0 paired, =1 unpaired?
  137.         JE    OUT_TEST
  138.         PUSH    DX
  139.         LEA    DX,err_msg_6    ;unpaired digits
  140.         CALL    PRMSG    
  141.         POP    DX
  142. ;
  143.         CALL    DISP_CHAR        ;ouput unpaired digit
  144. ;
  145. OUT_TEST:    CMP    TESTPR,1    ;=0 no valid output
  146.         JE    SUCCESS
  147.         CALL    DEFAULT
  148. ;
  149. SUCCESS:    PUSH    DX
  150.         LEA    DX,success_msg
  151.         CALL    PRMSG
  152.         POP    DX
  153. ;
  154.         RET                ; to DOS
  155. ;
  156. ;*************End of prog proc*************************************************
  157. ;
  158. START    ENDP        ;end main
  159. ;
  160. ;******************************************************************************
  161. ;
  162. ;        ORG    200H
  163. ;
  164. PRMSG    PROC NEAR
  165.         PUSH    AX        ;int 21h scrambles AX
  166.         MOV    AH,9        ;print string instruction
  167.          INT    21H        ;print DX msg
  168.         POP    AX
  169.         RET
  170. PRMSG    ENDP
  171. ;
  172. ;*************Escape routine, send escape code to printer**********************
  173. ;
  174. ESCAPE    PROC    NEAR
  175.         PUSH    AX            ;save potential char to be printed on stack
  176.         MOV    AL,1BH        ;escape char =27 to out reg.
  177.         CALL    PRINTER        
  178.         POP    AX
  179.         CALL    PRINTER        ;send saved char
  180.         RET
  181. ESCAPE    ENDP
  182. ;
  183. ;*************printing s/r- all done from here**********************************
  184. ;
  185. ;send char in AL to printer
  186. ;
  187. PRINTER     PROC    NEAR
  188.         MOV    TESTPR,1        ;valid output has been produced
  189.         MOV    DX,0            ;set register for printer output INT
  190.         MOV    AH,0            ;"
  191.         INT    17H            ;call printer driver in BIOS
  192.         RET
  193. PRINTER    ENDP
  194. ;
  195. ;*************Edit for valid hex numbers ***************************************
  196. ;
  197. HEXON    PROC NEAR            ;tests for valid hex digit,
  198.                         ;if OK calls HEXMATH,    otherwise sends errors
  199.         SUB    AL,30H        ;convert from ASCII to rel numbers (30H=0D)
  200.         JC    OUT_OF_RANGE    ;carry flag set, char<30H=0D, invalid param
  201.         CMP    AL,9            ;check for digit >9
  202.         JBE    HEX_OK        ;valid number, jump to math routine call
  203.         SUB    AL,7            ;convert from ASCII to hex A-F
  204.         CMP    AL,0FH
  205.         JA    OUT_OF_RANGE    ;error if hex>0FH
  206. ;
  207. HEX_OK:    CALL    HEXMATH        ;convert input param to hex
  208.         RET                ;to main
  209. ;
  210. ;Get here if hex parm not in range 0-0FH
  211. ;
  212. OUT_OF_RANGE:    CMP    NUM_DIGITS,0    ;=0 if first digit
  213.         JNE    SECOND_DIGIT
  214.         INC    NUM_DIGITS
  215.         MOV    FD_OOR,1        ;first digit out of range
  216.         CALL    HEX_ERR_MSG
  217.         RET
  218. ;
  219. SECOND_DIGIT:
  220.         CALL    HEX_ERR_MSG
  221.         MOV    SW,0            ;reset switches
  222.         MOV    NUM_DIGITS,0
  223.         MOV    FD_OOR,0
  224.         RET
  225. ;
  226. HEXON    ENDP
  227. ;
  228. ;********convert input params to hex numbers*********************************************************************
  229. ;
  230. HEXMATH    PROC    NEAR
  231.         CMP    NUM_DIGITS,0    ;0= 1st ,1= 2nd number
  232.         JNE    MATH2        ;jump and process second number
  233.         MUL    SIXTEEN        ;mult 1st number by 16
  234.         MOV    HEX,AL        ;clear & restore result in hex
  235.         INC    NUM_DIGITS        ;1st number processed
  236.         RET
  237. ;
  238. MATH2:    CMP    FD_OOR,1        ;0= valid
  239.         JE    END_MATH
  240.         ADD    AL,HEX        ;second hex number, total the two digits
  241.         MOV    NUM_DIGITS,0        ;clear digit var for further use
  242.         CALL PRINTER        ;send hex number in AL to printer
  243. ;
  244. END_MATH:MOV    FD_OOR,0        ;reset switches
  245.         MOV    SW,0
  246.         RET
  247. ;
  248. HEXMATH    ENDP
  249. ;
  250. ;********hex error messages****************************************************
  251. ;
  252. HEX_ERR_MSG    PROC    NEAR
  253. ;
  254.         PUSH    AX        ;int 21h scrambles AL
  255.         PUSH DX
  256.         LEA    DX,err_msg_1    ;invalid hex param
  257.         CALL    PRMSG
  258.         POP    DX
  259.         POP    AX
  260. ;
  261.         CALL    DISP_CHAR    ;output orig invalid char
  262. ;
  263.         PUSH    DX
  264.         LEA    DX,err_msg_4    ;parm ignored, execution continued
  265.         CALL    PRMSG
  266.         POP    DX
  267. ;
  268.         RET
  269. ;
  270. HEX_ERR_MSG    ENDP
  271. ;
  272. ;******************************************************************************
  273. ;
  274. DISP_CHAR    PROC    NEAR
  275. ;    
  276.         MOV    AL,[BX]        ;recover orig char
  277.         PUSH    BX            ;save registers before outputting char
  278.         PUSH    CX
  279.         XOR    BX,BX        ;clear BX, sets page to 0
  280.         MOV    CX,1            ;1 char to display
  281.         MOV    AH,0AH        ;int fn 10D
  282.         INT    10H            ;display char at cursor posn
  283.         POP    CX
  284.         POP    BX
  285. ;
  286.         RET
  287. ;    
  288. DISP_CHAR    ENDP
  289. ;
  290. ;******************************************************************************
  291. ;
  292. ;*************BUZZER s/r*******************************************************
  293. ;sounds buzzer
  294. ;
  295. BUZZER    PROC    NEAR
  296.         MOV    AL,07        ;buzzer param
  297.         CALL    PRINTER
  298.         RET
  299. BUZZER    ENDP
  300. ;
  301. ;*************DEFAULT S/R*******************************************************
  302. ;
  303. ;changes TESTPR to 1 through call to PRINTER, so PGMEND detects successfull output
  304. ;No params found, set default,
  305. ;remove ';' from wanted default instructions
  306. ;change default message 'd_msg' when changing defaults 
  307. ;
  308. ;*******************************************************************************
  309. ;
  310. ;        ORG    300H
  311. ;
  312. DEFAULT    PROC    NEAR
  313. ;
  314.         MOV    AL,18H        ;buffer reset
  315.         CALL    ESCAPE
  316. ;
  317.         MOV    AL,21H        ;IBM set =1b,21H,32H
  318.         CALL    ESCAPE
  319.         MOV    AL,32H
  320.         CALL PRINTER
  321. ;
  322.         MOV    AL,1EH
  323.         CALL    PRINTER        ;10/"
  324.         MOV    AL,35H        ;logical TOF
  325.         CALL    ESCAPE        
  326. ;
  327. ;******************************************************************************
  328. ;If no param codes entered then give param codes.
  329. ;Notify of default execution and type.
  330. ;Defaults are set before displaying message.
  331. ;If print echoed, will see default font on printer.
  332. ;******************************************************************************
  333. ;
  334.          PUSH    DX            ;save DX
  335. ;        LEA    DX,prog_name    ;prog name
  336. ;        CALL    PRMSG        ;print message
  337.         LEA    DX,d_msg        ;default params send to screen
  338.         CALL    PRMSG    
  339. ;
  340.         LEA    DX,inkey_msg    ;msg for "inkey to continue"
  341.         CALL    PRMSG
  342.         POP     DX
  343. ;
  344.         MOV     AH,0        ;wait for key press
  345.         INT    16H        ;call keyboard_io at F000:E82E, wait for char
  346.         POP    AX        ;ignore char in AL
  347. ;
  348.         PUSH DX
  349.         LEA    DX,p_msg    ;param codes available send to screen
  350.         CALL    PRMSG
  351.         POP    DX        ;recover DX
  352. ;
  353.         RET
  354. DEFAULT    ENDP
  355. ;
  356. ;******************************************************************************
  357. ;PARAMETER DECISION AND ACTION
  358. ;******************************************************************************
  359. ;
  360. ;        ORG    400H
  361. ;
  362. ALPHA_ENTRY    PROC    NEAR
  363. ;
  364. PARM_C:    CMP    AL,'C'        ;condense?
  365.         JNE    PARM_E        ;17/"
  366.         ;
  367.         MOV    AL,1DH
  368.         CALL    PRINTER        ;condensed doesn't need escape
  369.         JMP    END_PARM
  370. ;
  371. PARM_E:    CMP    AL,'E'        ;elite? 12/"
  372.         JNE    PARM_F
  373.         ;
  374.         MOV    AL,1CH        ;elite (12 char per inch )
  375.         CALL    PRINTER
  376.         JMP    END_PARM
  377. ;    
  378. PARM_F:    CMP    AL,'F'        ;form feed?
  379.         JNE    PARM_L
  380.         ;
  381.         MOV    AL,0CH        ;advance paper to top of form
  382.         CALL    PRINTER
  383.         JMP    END_PARM
  384. ;
  385. PARM_L:    CMP    AL,'L'        ;line feed
  386.         JNE    PARM_M
  387.         ;
  388.         MOV    AL,0AH
  389.         CALL    PRINTER
  390.         JMP     END_PARM
  391. ;
  392. PARM_M:    CMP    AL,'M'        ;parm to 'eMphasise'?
  393.         JNE    PARM_N        ;half dot horizontal spacing, double strike
  394.         ;
  395.         MOV    AL,54H        ;Oki code for eMphasised font
  396.         CALL    ESCAPE
  397.         JMP    END_PARM
  398. ;
  399. PARM_N:    CMP    AL,'N'        ;set eNhanced mode?
  400.         JNE    PARM_P        ;half dot vertical spacing, double strike  
  401.         ;
  402.         MOV    AL,48H        ;eNlarged
  403.         CALL ESCAPE
  404.         JMP    END_PARM
  405. ;
  406. PARM_P:    CMP     AL,'P'        ;pica 10/"
  407.         JNE    PARM_R
  408.         ;
  409.         MOV    AL,1EH
  410.         CALL    PRINTER
  411.         JMP    END_PARM
  412. ;
  413. PARM_R:    CMP    AL,'R'        ;reinitialise printer?
  414.         JNE    PARM_S
  415.         ;
  416.         MOV    AL,18H        ;cancel
  417.         CALL    ESCAPE
  418.         ;
  419.         MOV    AL,21H        ;IBM set =1B,21,32
  420.         CALL    ESCAPE        ;pica is normal type size=10 char per inch
  421.         MOV    AL,32H
  422.         CALL PRINTER
  423.         ;
  424.         MOV    AL,35H
  425.         CALL    ESCAPE        ;logical TOF
  426.         JMP     END_PARM        
  427. ;
  428. PARM_S:    CMP    AL,'S'        ;.LST and program files, which are wider than 80 
  429.         JNE    PARM_T        ;=cm
  430.         ;
  431.         MOV    AL,1DH        ;condensed 
  432.         CALL    PRINTER
  433.         MOV    AL,54H        ;emphasised
  434.         CALL ESCAPE
  435.         JMP     END_PARM
  436. ;
  437. PARM_T:    CMP    AL,'T'        ;Set tabs
  438.         JE    P_T1
  439.         JMP    PARM_U        ;long jump
  440.         ;
  441. P_T1:    MOV    AL,09H        ;tab on
  442.         CALL    ESCAPE
  443.         MOV    AL,"0"
  444.         CALL    PRINTER
  445.         MOV    AL,"5"
  446.         CALL    PRINTER
  447.         MOV    AL,","
  448.         CALL    PRINTER        ;tab=05
  449.         ;
  450.         MOV    AL,"1"
  451.         CALL    PRINTER
  452.         MOV    AL,"0"
  453.         CALL    PRINTER
  454.         MOV    AL,","    
  455.         CALL    PRINTER        ;tab=10
  456.         ;
  457.         MOV    AL,"1"
  458.         CALL    PRINTER
  459.         MOV    AL,"5"
  460.         CALL    PRINTER
  461.         MOV    AL,","
  462.         CALL    PRINTER        ;tab=15
  463.         ;
  464.         MOV    AL,"2"
  465.         CALL    PRINTER
  466.         MOV    AL,"0"
  467.         CALL    PRINTER
  468.         MOV    AL,","
  469.         CALL    PRINTER        ;20
  470.         ;
  471.         MOV    AL,"2"
  472.         CALL    PRINTER
  473.         MOV    AL,"5"
  474.         CALL    PRINTER
  475.         MOV    AL,","
  476.         CALL    PRINTER        ;25
  477.         ;
  478.         MOV    AL,"3"
  479.         CALL    PRINTER
  480.         MOV    AL,"0"
  481.         CALL    PRINTER
  482.         MOV    AL,","
  483.         CALL    PRINTER        ;30
  484.         ;
  485.         MOV    AL,"3"
  486.         CALL    PRINTER
  487.         MOV    AL,"5"
  488.         CALL    PRINTER
  489.         MOV    AL,","
  490.         CALL    PRINTER        ;35
  491.         ;
  492.         MOV    AL,"4"
  493.         CALL    PRINTER
  494.         MOV    AL,"0"
  495.         CALL    PRINTER
  496.         MOV    AL,","
  497.         CALL    PRINTER        ;40
  498.         ;
  499.         MOV    AL,"4"
  500.         CALL    PRINTER
  501.         MOV    AL,"5"
  502.         CALL    PRINTER
  503.         MOV    AL,","
  504.         CALL    PRINTER        ;45
  505.         ;
  506.         MOV    AL,"5"
  507.         CALL    PRINTER
  508.         MOV    AL,"0"
  509.         CALL    PRINTER
  510.         MOV    AL,","
  511.         CALL    PRINTER        ;50
  512.         ;
  513.         MOV    AL,"5"
  514.         CALL    PRINTER
  515.         MOV    AL,"5"
  516.         CALL    PRINTER
  517.         MOV    AL,","
  518.         CALL    PRINTER        ;55
  519.         ;
  520.         MOV    AL,"6"
  521.         CALL    PRINTER
  522.         MOV    AL,"0"
  523.         CALL    PRINTER        ;60
  524.         JMP    END_PARM
  525. ;
  526. PARM_U:    CMP    AL,'U'        ;Underline on
  527.         JNE    PARM_V
  528.         ;
  529.         MOV    AL,43H
  530.         CALL    ESCAPE
  531.         JMP    END_PARM
  532. ;
  533. PARM_V:    CMP    AL,'V'        ;Underline off
  534.         JNE    PARM_W
  535.         ;
  536.         MOV    AL,44H
  537.         CALL    ESCAPE
  538.         JMP    END_PARM
  539. ;
  540. PARM_W:    CMP    AL,'W'        ;wide, works with CP&E
  541.         JNE    PARM_X
  542.         ;
  543.         MOV    AL,1FH
  544.         CALL    PRINTER
  545.         JMP    END_PARM
  546. ;
  547. PARM_X:    CMP    AL,'X'        ;teXt mode=Oki correspondance mode
  548.         JNE    ERROR_3        ;invalid alphabetic parm found, send errors
  549.         ;
  550.         MOV     AL,31H        
  551.         CALL ESCAPE
  552. ;
  553. END_PARM:    RET                ;exit s/r 
  554. ;
  555. ;Invalid alphabetical parameter found
  556. ;
  557. ERROR_3:    PUSH    DX            ;write error message
  558.         LEA    DX,err_msg_3    ;invalid parm msg
  559.         CALL    PRMSG
  560.         POP    DX
  561. ;
  562.         CALL    DISP_CHAR
  563. ;
  564. ERROR_4:    PUSH    DX
  565.         LEA    DX,err_msg_4    ;parm ignored, execution continued
  566.         CALL    PRMSG
  567. ERROR_5:    LEA    DX,err_msg_5    ;where to find valid parm list
  568.         CALL    PRMSG
  569.         POP    DX
  570.         RET                ;to main, 
  571. ;
  572. ALPHA_ENTRY    ENDP
  573. ;
  574. ;******************************************************************************
  575. ;Program data
  576. ;
  577. ;        ORG    600H
  578. ;
  579. ;
  580.     p_msg    db    "Command Format:-OKI192 [/xx] [a][b]                                     ",cr,lf
  581.             db    "/xx    -heX input (must be paired)                                      ",cr,lf
  582.             db    "                                                                      ",cr,lf
  583.             db    "C    -Condensed=17/inch                                               ",cr,lf
  584.             db    "E    -Elite    =12/inch                  ***************************  ",cr,lf
  585.             db    "F    -Form feed                          *Some Command Combinations*  ",cr,lf
  586.             db    "L    -Line feed                          *                         *  ",cr,lf
  587.             db    "M    -eMphasized (hor double)            *         Type size       *  ",cr,lf
  588.             db    "N    -eNhanced   (ver double)            *       C   E   P   X     *  ",cr,lf
  589.             db    "P    -Pica,    =10/inch                  *  U    +   +   +   +     *  ",cr,lf
  590.             db    "R    -Reset, logical TOF, Pica           *  M    -   +   +   +     *  ",cr,lf
  591.             db    "S    -liSt, =c m, .LST files>80 chars    *  N    -   +   +   +     *  ",cr,lf
  592.             db    "T    -set Tabs; 5,10,15...60             *  W    +   +   +   +     *  ",cr,lf
  593.             db    "U    -Underline on                       *                         *  ",cr,lf
  594.             db    "V    -Underline off                      ***************************  ",cr,lf
  595.             db    "W    -Wide (double)                                                   ",cr,lf
  596.             db    "X    -teXt= Oki192 correspondance quality                          ",cr,lf
  597.             db    "/    -Hex on for two digits.                                          ",cr,lf
  598.             db    "                                                                     ",cr,lf
  599.             db    "     -Blanks, commas ignored on command line.                         ",cr,lf
  600.             db    "     UC/lc not differentiated. Hex and alphabetical mixed is OK.     ",cr,lf
  601.             db    "     Some commands undo other commands.                              ",cr,lf,"$"
  602. ;
  603. ;******************************************************************************
  604. ;
  605. success_msg    db    cr,lf,"OKI192.COM     Ritari/Mack 1985",cr,lf,"$"
  606. ;
  607. prog_name    db    cr,lf
  608.             db    "OKI192.COM         written  by Douglas Ritari, 1983",cr,lf
  609.             db    "              modified by Joseph  Mack  , 1985",cr,lf,lf,"$"
  610. ;
  611. d_msg        db    cr,lf,"These current default codes have been sent to the printer:",,
  612. ;
  613. ;put command(s) parameters, for current default, into next line, between double quotes 
  614. ;
  615.             db    "R, 10/inch, IBM set"
  616.             db    cr,lf,lf,"$"
  617. ;
  618.     inkey_msg    db    cr,lf,"Press any key to continue.                                      ",cr,lf,"$"
  619.     err_msg_1    db    cr,lf,"Invalid hex digit found(ie not 0-0FH):$",
  620.     err_msg_2    db    cr,lf,"No action taken.                                                ",cr,lf,"$"
  621.     err_msg_3    db    cr,lf,"Invalid alphabetical character:$",
  622.     err_msg_4    db    cr,lf,"Character ignored, execution continued.$"
  623.     err_msg_5    db    cr,lf,"Valid params available by returning to DOS and typing <OKI192>. ",cr,lf,"$"
  624.     err_msg_6    db    cr,lf,"Unpaired hex parameter:$",
  625.     err_msg_8    db    cr,lf,"Character ignored, execution terminated.                        ",cr,lf,"$"
  626.     got_here_msg    db    cr,lf,"got here                                                   ",cr,lf,"$"                                    
  627.     prn_err_bit_3    db    cr,lf,"printer I/O error.                                         ",cr,lf,"$"
  628.     prn_err_bit_5    db    cr,lf,"printer out of paper.                                      ",cr,lf,"$"        
  629.  
  630. ;
  631. ;******************************************************************************
  632. ;
  633. ;
  634. MAIN    ENDS
  635.         END    START
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.